#ifdef MEM_DEBUG

#ifndef ALLOCATION_H
#define ALLOCATION_H

namespace Engine
{
	class Allocation
	{
		private:
			void* m_address;
			size_t m_size;
			const char*  m_fileName;
			unsigned int m_line;

		public:
			Allocation():m_address(nullptr), m_size(0), m_line(0), 
				m_fileName(""){}

			Allocation(void* address, size_t size, const char* fileName, 
				int line);

			void* GetAddress() const{return m_address;}
			size_t GetSize() const{return m_size;}
			const char* GetFileName() const{return m_fileName;}
			unsigned int GetLineNum() const{return m_line;}
	};

	std::ostream& operator<<(std::ostream& s, const Allocation& a);
}

#endif//include guard

#endif//ifdef MEM_DEBUG